
%!TEX program = xelatex
%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode

\documentclass[10pt]{article} 

\input{wang_preamble.tex}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{titling}
\setlength{\droptitle}{-2cm}   % This is your set screw

%%文档的题目、作者与日期
\author{王立庆（2020级数学与应用数学1班）}
\title{统计软件第1-4章练习解答}
%\date{\vspace{-3ex}}
\renewcommand{\today}{\number\year \,年 \number\month \,月 \number\day \,日}
%\date{2021年3月11日}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

\maketitle

%\thispagestyle{empty}

\begin{enumerate}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型1
运行下述两行R程序的返回结果是什么？
{\color{blue}\begin{verbatim}
> x<-c(0,1,2,NA)
> is.na(x)
\end{verbatim}
}

\begin{enumerate}
\item  {\color{blue}\verb+ [1] FALSE FALSE FALSE TRUE +}
\item  {\color{blue}\verb+ [1] TRUE FALSE FALSE TRUE +}
\item  {\color{blue}\verb+ [1] FALSE +}
\item  {\color{blue}\verb+ [1] TRUE +}
\end{enumerate}

{\color{red}答案解析：（a）
函数 {\color{blue}\verb+is.na()+}判断输入变量是否为缺失数据，如有则返回 {\color{blue}\verb+TRUE+}, 否则返回 {\color{blue}\verb+FALSE+}.
如果输入一个向量，则对每个分量都分别判断，从而返回一个相同长度的逻辑取值的向量。
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型2
运行下述三行R程序的返回结果是什么？
{\color{blue}\begin{verbatim}
> x<-factor(c('boy','girl','girl'))
> y<-c('red','blue','green','grey')
> y[x]
\end{verbatim}
}

\begin{enumerate}
\item  {\color{blue}\verb+ [1] "red"  "blue" "blue" +}
\item  {\color{blue}\verb+ [1] boy  girl girl +}\\ {\color{blue}\verb+ Levels: boy girl +}
\item  {\color{blue}\verb+ [1] "red"   "blue"  "green" "grey" +}
\item  {\color{blue}\verb+ [1] 1 2 2 +}
\end{enumerate}


{\color{red}答案解析：（a）
向量 {\color{blue}\verb+x+} 是因子型变量，有三个分量，两个水平。{\color{blue}\verb+x+} 的数值等价于 1,2,2. 
因此 {\color{blue}\verb+y[x]+} 就是把向量 {\color{blue}\verb+y+} 中的第 1,2,2 个分量取出来，结果为 {\color{blue}\verb+"red"  "blue" "blue"+}. 
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据框的操作3
用一个逻辑表达式，找出下述数据框中体重超过75kg的男性。
{\color{blue}\begin{verbatim}
> mydf
  height weight   fsex
1   1.75     60   male
2   1.80     72   male
3   1.65     57 female
4   1.90     90   male
5   1.74     95 female
6   1.91     72   male
\end{verbatim}
}

\begin{enumerate}
\item  {\color{blue}\verb+ > mydf[weight>75,] +}
\item  {\color{blue}\verb+ > mydf[fsex=='male',] +}
\item  {\color{blue}\verb+ > mydf[weight>75 & fsex=='male'] +}
\item  {\color{blue}\verb+ > mydf[weight>75 & fsex=='male',] +}
\end{enumerate}


{\color{red}答案解析：（d）
用数据框加中括号 {\color{blue}\verb+mydf[ ]+} 来达到访问其中元素的目的。
使用 {\color{blue}\verb+ & +} 连接两个需要同时成立的条件。最后要加逗号。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型4
现有6个病人，其疼痛程度编码分别为 1,2,3,4,2,3. 为此创建因子型变量
{\color{blue}\begin{verbatim}
> fpain<-factor(c(1,2,3,4,2,3))
\end{verbatim}
}
在将水平从数字转换为具体描述的字符串时，使用了下述命令
{\color{blue}\begin{verbatim}
> levels(fpain)<-c('none','medium','medium','severe')
\end{verbatim}
}
即对水平2和3使用了同样的描述。请问该因子型变量还有几个水平？显示结果是什么？
{\color{blue}\begin{verbatim}
> fpain
\end{verbatim}
}

\begin{enumerate}
\item  变量 {\color{blue}\verb+ fpain +}有4个水平，显示结果：
{\color{blue}\begin{verbatim}
[1] none   mild   medium severe mild   medium
Levels: none mild medium severe
\end{verbatim}
}

\item  变量 {\color{blue}\verb+ fpain +} 有3个水平，显示结果：
{\color{blue}\begin{verbatim}
[1] none medium medium severe medium medium
Levels: none medium severe
\end{verbatim}
}

\item  变量 {\color{blue}\verb+ fpain +} 有3个水平，显示结果：
{\color{blue}\begin{verbatim}
[1] none none medium severe none medium
Levels: none medium severe
\end{verbatim}
}

\item  这个命令会报错。
\end{enumerate}

{\color{red}答案解析：（b）
如果对水平2和3使用了同样的描述，即用 {\color{blue}\verb+medium +} 来同时描述水平为2和3的疼痛程度，这样就把这两类合并成了一类。因此这6个病人中有4个病人的疼痛程度为 {\color{blue}\verb+medium +}. 
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：R编程基础5
从标准正态分布中产生30个随机数，并求这30个数的标准差。
这这个工作重复9遍。下述哪个选项没能实现该任务？

\begin{enumerate}
\item  {\color{blue}\verb+ > replicate(9, sd(rnorm(30))) +}

\item  {\color{blue}\verb+ > sapply(1:9,function(i) sd(rnorm(30))) +}

\item  {\color{blue}\verb+ > replicate(9, mean(rnorm(30))) +}

\item  {\color{blue}\verb+ > m<-matrix(rnorm(270),nrow=30,byrow=F) +} \\ 
{\color{blue}\verb+ > apply(m,2,sd) +}
\end{enumerate}

{\color{red}答案解析：（c）
在R语言中，函数 {\color{blue}\verb+ sd( ) +} 是计算标准差，{\color{blue}\verb+ mean( ) +} 是计算均值。
答案C首先生成一个30行9列的矩阵，然后对每1列(第2维度)计算标准差。
大家可以运行这些命令，查看结果。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型6
使用 R语言的函数 \,{\color{blue}\verb+ exp( ) +} 计算 $e^3$ 的近似值，这里 $e$ 是自然底数。保留8位有效数字。
\begin{enumerate}
\item  {\color{blue}\verb+ >  17.085537+}
\item  {\color{blue}\verb+ >  18.085537+}
\item  {\color{blue}\verb+ >  19.085537+}
\item  {\color{blue}\verb+ >  20.085537+}
\end{enumerate}

{\color{red}答案解析：（d）
运行函数 {\color{blue}\verb+ > exp(3) +} 即可。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型7
使用函数 \,{\color{blue}\verb+ c( ) +} 输入一个向量 $x=(1,2,3,4,5,6,7,8,9)$, 并计算 $y=(1^3,2^3,\cdots,9^3)$, 再计算 $y$ 的所有分量的和。结果是多少？
\begin{enumerate}
\item  {\color{blue}\verb+ >  2015+}
\item  {\color{blue}\verb+ >  2025+}
\item  {\color{blue}\verb+ >  2035+}
\item  {\color{blue}\verb+ >  2045+}
\end{enumerate}

{\color{red}答案解析：（b） 三行代码如下：
%函数 {\color{blue}\verb+ sd( ) +} 
{\color{blue}\begin{verbatim}
> x<-1:9
> y<-x^3
> sum(y)
\end{verbatim}
}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型8
设某班的测试成绩如下。设显著性水平为 0.05, 使用 t 检验，推断该测试的平均成绩是否等于75分。
\begin{table}[ht!]
\centering
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|}\hline
学号 &1&2&3&4&5&6&7&8&9&10\\ \hline
成绩 &82&73&76&94&88&60&68&70&87&62\\ \hline
\end{tabular}
\end{table}

\begin{enumerate}
\item  是的，无法拒绝平均成绩等于75分的零假设。%{\color{blue}\verb+ >  +}
\item  不是，拒绝平均成绩等于75分的零假设。%{\color{blue}\verb+ >  +}
%\item  {\color{blue}\verb+ >  +}
%\item  {\color{blue}\verb+ >  +}
\end{enumerate}

{\color{red}答案解析：（a） 运行下述程序，得到 $p$ 值为0.78, 大于显著性水平，因此无法拒绝零假设。
%函数 {\color{blue}\verb+ sd( ) +} 
{\color{blue}\begin{verbatim}
> t.test(x,mu=75,conf.level=0.90)

	One Sample t-test

data:  x
t = 0.275473, df = 9, p-value = 0.78917
alternative hypothesis: true mean is not equal to 75
90 percent confidence interval:
 69.345578 82.654422
sample estimates:
mean of x 
       76 
\end{verbatim}
}       
}
       
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型9
使用函数 \,{\color{blue}\verb+plot( ) +} 画出下述数据的散点图，判断最可能的函数形式。
\begin{table}[ht!]
\centering
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|}\hline
$x$ & 0.81 & 0.62 & 0.97 & 0.72 & 0.86 & 0.91 & 0.07 & 0.39 & 0.02 & 0.13 \\ \hline
$y$ & 1.50 & 1.39 & 2.04 & 1.65 & 1.69 & 1.79 & 0.03  & 0.72 & 0.09  & 0.11 \\ \hline
\end{tabular}
\end{table}
\begin{enumerate}
\item  斜率为正的线性函数。%{\color{blue}\verb+ >  +}
\item  斜率为负的线性函数。%{\color{blue}\verb+ >  +}
\item  指数函数。%{\color{blue}\verb+ >  +}
\item  对数函数。%{\color{blue}\verb+ >  +}
\end{enumerate}

{\color{red}答案解析：（a） 运行下述代码，观察图像即知。
%函数 {\color{blue}\verb+ sd( ) +} 
{\color{blue}\begin{verbatim}
> x<-c(0.81,0.62,0.97,0.72,0.86,0.91,0.07,0.39,0.02,0.13)
> y<-c(1.50,1.39,2.04,1.65,1.69,1.79,0.03,0.72,0.09,0.11)
> plot(x,y)
\end{verbatim}
}  
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型10
使用函数 \,{\color{blue}\verb+plot( ) +} 画出平面上的三个点，坐标如下。然后再用函数 \,{\color{blue}\verb+lines( ) +} 把这三个点连成一个三角形。判断三角形的形状。
\begin{table}[H]
\centering
\begin{tabular}{|c|c|c|c|}\hline
$x$ &  1&4&5\\ \hline
$y$ &  3&1&5\\ \hline
\end{tabular}
\end{table}

\begin{enumerate}
\item  锐角三角形。%{\color{blue}\verb+ >  +}
\item  直角三角形。%{\color{blue}\verb+ >  +}
\item  钝角三角形。%{\color{blue}\verb+ >  +}
\item  这三点不构成三角形。%{\color{blue}\verb+ >  +}
\end{enumerate}

{\color{red}答案解析：（a） 运行下述程序，观察即知。注意把终点设为起点。
%函数 {\color{blue}\verb+ sd( ) +} 
{\color{blue}\begin{verbatim}
> x<-c(1,4,5,1)
> y<-c(3,1,5,3)
> plot(x,y)
> lines(x,y)
\end{verbatim}
}  
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型11
使用函数 \,{\color{blue}\verb+seq( ) +} 生成等差数列 $x=(0.0, 0.1, 0.2, \cdots,0.9,1.0)$. 使用下述那个函数？
\begin{enumerate}
\item  {\color{blue}\verb+ > seq(0, 1, 0.1)+}
\item  {\color{blue}\verb+ > seq(0, 0.1, 1)+}
\item  {\color{blue}\verb+ > seq(0, 1, 10)+}
\item  {\color{blue}\verb+ > seq(0, 1, 11)+}
\end{enumerate}

{\color{red}答案解析：（a） seq = sequence = 序列. 
%函数 {\color{blue}\verb+ sd( ) +} 
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型12
运行函数 \,{\color{blue}\verb+seq(0,20,3) +}, 下述说法中正确的是哪个？ 
\begin{enumerate}
\item  得到一个长度为6的向量，最后一个分量是18.%{\color{blue}\verb+ >  +}
\item  得到一个长度为6的向量，最后一个分量是20.%{\color{blue}\verb+ >  +}
\item  得到一个长度为7的向量，最后一个分量是18.%{\color{blue}\verb+ >  +}
\item  得到一个长度为7的向量，最后一个分量是20.%{\color{blue}\verb+ >  +}
\end{enumerate}

{\color{red}答案解析：（c） 除不尽，后面的不到一截就扔掉了。
%函数 {\color{blue}\verb+ sd( ) +} 
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型13
输入一个向量，其中前5个分量的值都是60, 后8个分量的值都是70. 下述函数中可以实现的是哪个？
\begin{enumerate}
\item  {\color{blue}\verb+ >  rep(60,70,5,8)+}
\item  {\color{blue}\verb+ >  rep(60,70,c(5,8))+}
\item  {\color{blue}\verb+ >  rep(c(60,70),c(5,8))+}
\item  {\color{blue}\verb+ >  rep(c(60,70,5,8))+}
\end{enumerate}

{\color{red}答案解析：（c） 函数 {\color{blue}\verb+ rep( ) +} 要输入两个参数，每个参数都是一个向量。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型14
输入矩阵 $A=\begin{bmatrix}5&2&4\\ 3&6&1 \\ 8&6&9 \end{bmatrix}$, 计算其行列式的值。结果是多少？
\begin{enumerate}
\item  {\color{blue}\verb+ >  80+}
\item  {\color{blue}\verb+ >  81+}
\item  {\color{blue}\verb+ >  82+}
\item  {\color{blue}\verb+ >  83+}
\end{enumerate}

{\color{red}答案解析：（c） 运行下述代码，查看结果。
%函数 {\color{blue}\verb+ sd( ) +} 
{\color{blue}\begin{verbatim}
> x<-c(5,2,4,3,6,1,8,6,9)
> x
[1] 5 2 4 3 6 1 8 6 9
> A<-matrix(x,nrow=3,byrow=T)
> A
     [,1] [,2] [,3]
[1,]    5    2    4
[2,]    3    6    1
[3,]    8    6    9
> det(A)
[1] 82
\end{verbatim}
}  
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型15
设10位同学的课程成绩如下，使用一个因子型变量保存该数据。
\begin{table}[H]
\centering
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|}\hline
学号 &1&2&3&4&5&6&7&8&9&10\\ \hline
成绩 &B & D & A & C & B & D & B & A & B & C\\ \hline
\end{tabular}
\end{table}

运行下述程序，选择最后出现的结果。为方便显示，\textbackslash\textbackslash  表示换行。
{\color{blue}\begin{verbatim}
> grade<-c(2,4,1,3,2,4,2,1,2,3)
> fgrade<-factor(grade,levels=1:4)
> levels(fgrade)<-c('A','B','C','D')
> fgrade
\end{verbatim}
}

\begin{enumerate}
\item  {\color{blue}\verb+ >  [1] B D A C B D B A B C \\ Levels: A B C D+}
\item  {\color{blue}\verb+ >  [1] C A D B C A C D C B \\ Levels: A B C D+}
\item  {\color{blue}\verb+ >  [1] B D A C B D B A B C \\ Levels: 1 2 3 4+}
\item  {\color{blue}\verb+ >  [1] 2 4 1 3 2 4 2 1 2 3 \\ Levels: 1 2 3 4+}
\end{enumerate}

{\color{red}答案解析：（a） 运行代码即知。
%函数 {\color{blue}\verb+ sd( ) +} 
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型16
设10位同学的课程成绩如下，使用一个列表保存该数据。
\begin{table}[H]
\centering
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|}\hline
学号 &1&2&3&4&5&6&7&8&9&10\\ \hline
成绩 &B & D & A & C & B & D & B & A & B & C\\ \hline
\end{tabular}
\end{table}

一行行地运行下述程序，选择最后出现的结果。为方便显示，\textbackslash\textbackslash  表示换行。
{\color{blue}\begin{verbatim}
> grade<-c(2,4,1,3,2,4,2,1,3,4,2,3,2,2)
> fgrade<-factor(grade,levels=1:4)
> levels(fgrade)<-c('A','B','C','D')
> lgrade<-list(grade=grade,fgrade=fgrade)
> typeof(lgrade)
> lgrade$grade
> lgrade$fgrade
> lgrade$fgrade[3]
\end{verbatim}
}

\begin{enumerate}
\item  {\color{blue}\verb+ >  [1] A \\ Levels: A B C D+}
\item  {\color{blue}\verb+ >  [1] B D A C B D B A B C \\ Levels: A B C D+}
\item  {\color{blue}\verb+ >  [1] "list"+}
\item  {\color{blue}\verb+ >  [1] 2 4 1 3 2 4 2 1 2 3+}
\end{enumerate}

{\color{red}答案解析：（a） 运行代码即知。结果解读：第三位同学的字母成绩是 A. 
%函数 {\color{blue}\verb+ sd( ) +} 
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型17
设已有列表数据 {\color{blue}\verb+lgrade+}, 如何将其保存为一个数据框？

\begin{enumerate}
\item  {\color{blue}\verb+ >  mydata<-dataframe(lgrade)+}
\item  {\color{blue}\verb+ >  mydata<-data.frame(lgrade)+}
\item  {\color{blue}\verb+ >  mydata<-dataframe('lgrade')+}
\item  {\color{blue}\verb+ >  mydata<-data.frame('lgrade')+}
\end{enumerate}

{\color{red}答案解析：（b） 使用函数 {\color{blue}\verb+ data.frame( ) +} 创建数据框。这里的输入参数是一个列表。加引号就变成字符串了。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型18
设有下述数据框
{\color{blue}\begin{verbatim}
> mydata
   grade fgrade
1      2      B
2      4      D
3      1      A
4      3      C
5      2      B
6      4      D
7      2      B
8      1      A
9      2      B
10     3      C
\end{verbatim}
}

为找出成绩为 A 的所有记录，运行下述程序，%其中数据框 {\color{blue}\verb+mydata+} 来自上一题。
最后显示的结果是什么？
{\color{blue}\begin{verbatim}
> select<-mydata$fgrade == 'A'
> select
> mydata[select,]
> mydataA<-mydata[select,]
> typeof(mydataA)
\end{verbatim}
}

\begin{enumerate}
\item  {\color{blue}\verb+ >  grade fgrade \\ 3     1      A \\ 8     1      A +}  
\item  {\color{blue}\verb+ >  [1] "list"+}
\item  {\color{blue}\verb+ >  [1] F  F  T  F  F  F  F  T  F  F+}
\item  {\color{blue}\verb+ >  Error in `[.data.frame`(mydata, select) : undefined columns selected+}
\end{enumerate}

{\color{red}答案解析：（b） 运行这些代码。查看每行代码的结果。最后一行是查看数据类型。
%函数 {\color{blue}\verb+ sd( ) +} 
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型19
将向量 {\color{blue}\verb+ x=(0.7, 9.1, 2.1, 8.7, 7.5, 5.1, 8.6, 6.9, 7.4, 8.5)+} 中的元素从小到大排列，存为另一个变量，下述那个命令可以做到？ 
\begin{enumerate}
\item  {\color{blue}\verb+ >  order(x)+}
\item  {\color{blue}\verb+ >  x(order(x))+}
\item  {\color{blue}\verb+ >  x[order(x),]+}
\item  {\color{blue}\verb+ >  sort(x)+}
\end{enumerate}

{\color{red}答案解析：（d） 函数 {\color{blue}\verb+ x[order(x)] +} 也可以。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型20
求向量 {\color{blue}\verb+ x=(0.7, 9.1, 2.1, 8.7, 7.5, 5.1, 8.6, 6.9, 7.4, 8.5)+} 中的所有元素的最大值和最小值的和，结果是多少？
\begin{enumerate}
\item  {\color{blue}\verb+ >  9.6+}
\item  {\color{blue}\verb+ >  9.7+}
\item  {\color{blue}\verb+ >  9.8+}
\item  {\color{blue}\verb+ >  9.9+}
\end{enumerate}

{\color{red}答案解析：（c） 运行下述代码，查看结果，选出答案。
%函数 {\color{blue}\verb+ sd( ) +} 
{\color{blue}\begin{verbatim}
> x<-c(0.7, 9.1, 2.1, 8.7, 7.5, 5.1, 8.6, 6.9, 7.4, 8.5)
> x
 [1] 0.7 9.1 2.1 8.7 7.5 5.1 8.6 6.9 7.4 8.5
> max(x)+min(x)
[1] 9.8
\end{verbatim}
}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%\end{enumerate}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%
%\begin{enumerate}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型1
下述R语言的哪个命令可以获取当前的工作目录？

\begin{enumerate}
\item  {\color{blue}\verb+ > getwd()  +}
\item  {\color{blue}\verb+ > setwd()  +}
\item  {\color{blue}\verb+ > dir() +}
\item  {\color{blue}\verb+ > ls() +}
\end{enumerate}

{\color{red}答案解析：（a）
getwd 意思是 get working directory. 即获取工作目录。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型2
下述R语言的哪个命令可以产生标准正态分布的随机数？

\begin{enumerate}
\item  {\color{blue}\verb+ > dnorm(10) +}
\item  {\color{blue}\verb+ > pnorm(10) +}
\item  {\color{blue}\verb+ > qnorm(10) +}
\item  {\color{blue}\verb+ > rnorm(10) +}
\end{enumerate}

{\color{red}答案解析：（d）
r是random number 的首字母。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型3
下述哪个数据框不属于程序包 {\color{blue}\verb+ISwR+} 的？
{\color{blue}\begin{verbatim}
> library(ISwR)
\end{verbatim}
}

\begin{enumerate}
\item  {\color{blue}\verb+thuesen+}
\item  {\color{blue}\verb+energy+}
\item  {\color{blue}\verb+juul+}
\item  {\color{blue}\verb+airquality+}
\end{enumerate}

{\color{red}答案解析：（d）
airquality 是R程序的内建数据框。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型4
运行下述两行R程序之后，下述说法中不正确的是哪个？
{\color{blue}\begin{verbatim}
> library(ISwR)
> attach(thuesen)
\end{verbatim}
}

\begin{enumerate}
\item  在搜索路径中会出现数据框 {\color{blue}\verb+thuesen+} 和程序包 {\color{blue}\verb+ISwR+}.
\item  可以直接使用数据框 {\color{blue}\verb+thuesen+} 中的变量 {\color{blue}\verb+blood.glucose+} 和 {\color{blue}\verb+short.velocity+}. 
\item  使用 {\color{blue}\verb+detach(thuesen)+} 可以把这个数据框从工作空间移走。
\item  如果原来就定义有 {\color{blue}\verb+blood.glucose+} 变量，则会覆盖这个变量的原来的值。
\end{enumerate}

{\color{red}答案解析：（d）
程序运行结果表明，如果变量名本来在数据框之外就独立存在，则 attach 这个数据框之后，该变量保留原来的值。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型5
下述哪个命令找出了数据框 thuesen 里心室收缩速度大于 1.40 的病人？

\begin{enumerate}
\item  {\color{blue}\verb+ > subset(thuesen,short.velocity>1.40) +}
\item  {\color{blue}\verb+ > transform(thuesen,short.velocity>1.40) +}
\item  {\color{blue}\verb+ > within(thuesen,short.velocity>1.40) +}
\item  {\color{blue}\verb+ > with(thuesen,short.velocity>1.40) +}
\end{enumerate}

{\color{red}答案解析：（a）
测试每个选项，可知第一个完成了任务。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型6
关于下述程序，哪个说法是不正确的？
{\color{blue}\begin{verbatim}
> x<-runif(50,0,10)  #1
> y<-rnorm(50)  #2
> plot(x,y,ylim=c(-3,3))  #3
> abline(h=0)  #4
\end{verbatim}
}

\begin{enumerate}
\item  第1行定义了变量 x 为区间 [0,10] 上的50个随机数。
\item  第2行定义了变量 y 为服从标准正态分布的50个随机数。
\item  第3行的 ylim 参数指定了图像的上下限，从而把50个点都显示出来。
\item  第4行是在原图像的基础上画出 x 轴。
\end{enumerate}

{\color{red}答案解析：（c）
正态分布的随机数可能不落在区间 [-3,3] 中，因此这50个点不一定都能显示出来。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型7
想在一个图中呈现左右两个子图，下述哪个命令可以做到？

\begin{enumerate}
\item  {\color{blue}\verb+ > par(mfrow=c(1,2))+}
\item  {\color{blue}\verb+ > par(mfrow=c(2,1))+}
\item  {\color{blue}\verb+ > par(mfrow=(1,2))+}
\item  {\color{blue}\verb+ > par(mfrow=(2,1))+}
\end{enumerate}

{\color{red}答案解析：（a）
第2个命令将呈现上下两个子图。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型8
下述程序的运行结果是什么？
{\color{blue}\begin{verbatim}
> s<-0
> k<-1
> while(s<=100) {s<-s+k; k<-k+1}
\end{verbatim}
}

\begin{enumerate}
\item  {\color{blue}\verb+ 5050 +}
\item  {\color{blue}\verb+ 5151 +}
\item  {\color{blue}\verb+ 4950 +}
\item  {\color{blue}\verb+ 105 +}
\end{enumerate}

{\color{red}答案解析：（d）
注意判别条件是 s 而不是 k. 
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型9
关于下述程序，哪个说法是不正确的？
{\color{blue}\begin{verbatim}
> x<-seq(0,1,0.05)  #1
> plot(x,x,ylab='y variable')  #2
> for (k in 2:9) lines(x,x/k)  #3
\end{verbatim}
}

\begin{enumerate}
\item  图像结果显示10条直线。
\item  图像的纵坐标的标签是 y variable.
\item  向量 x 有 21 个分量，正好将 [0,1] 区间 20 等分。
\item  图像结果落在一个单位正方形内。

\end{enumerate}

{\color{red}答案解析：（a）
运行结果表明，第一条是散点，不是直线。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型10
关于下述程序，哪个说法是不正确的？
{\color{blue}\begin{verbatim}
> x<-read.table('data01.txt')  #1
> y<-read.table('data01.txt', header=T)  #2
> z<-read.table('data02.csv', sep=',')  #3
> w<-read.table('data02.csv', sep=' ')  #4
\end{verbatim}
}

\begin{enumerate}
\item  第1行读入一个文本格式的数据框，并且默认没有表头，即文件中的所有行都是数据。
\item  第2行读入一个文本格式的数据框，并且指定文件中的第一行为变量名。
\item  第3行读入一个 csv 格式的数据框，并且指定分隔符为逗号。
\item  第4行读入一个 csv 格式的数据框，并且指定分隔符为空格。
\end{enumerate}

{\color{red}答案解析：（a）
默认有没有表头，是按照文件第一行的长度来决定的。如果第一行的长度比后面几行的长度少一个数据，则默认第一行是表头。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %  知识点：数据类型 #11
运行下述程序，哪个说法是不正确的？
{\color{blue}\begin{verbatim}
> x<-list(u=2,v='abc')
> x
> class(x)
> str(x)
> x$v
\end{verbatim}
}

\begin{enumerate}
\item  第一行程序生成一个列表对象 {\color{blue}\verb+x+}. 
\item  执行命令 {\color{blue}\verb+> x[1]+} 和 {\color{blue}\verb+> x$u+} 的返回结果是一样的。
\item  最后得到的结果是 {\color{blue}\verb+ [1] "abc" +}. 
\item  执行命令 {\color{blue}\verb+> x$v[2]+} 将返回字符 {\color{blue}\verb+b+}.
\end{enumerate}

{\color{red}答案解析：（d）
逐个运行测试，最后一个选项的返回结果是  {\color{blue}\verb+[1] NA+}.
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型 #12
列表经常用来把不同数据类型的值打包组合在一起。函数的返回值经常是一个列表。这对统计函数特别有用，因为统计函数往往返回一些复杂的结果。测试下述程序，然后选出选项中不正确的那个说法。
{\color{blue}\begin{verbatim}
> hn <- hist(Nile)
> str(hn)
> class(hn)
\end{verbatim}
}

\begin{enumerate}
\item  这个命令的结果是一个直方图，和一个 "histogram" 类型的列表变量 {\color{blue}\verb+hn+}. 
\item  用命令 {\color{blue}\verb+> length(hn)+} 可知变量 {\color{blue}\verb+hn+} 有6个分量。
\item  列表变量 {\color{blue}\verb+hn+} 的第2个分量 {\color{blue}\verb+hn[2]+} 存储了这个直方图的各条的高度。
\item  使用命令 {\color{blue}\verb+> ?Nile+} 查看，可知 {\color{blue}\verb+Nile+} 数据保存了尼罗河在1900-2000这些年的径流量。
\end{enumerate}

{\color{red}答案解析：（d）
查看数据 {\color{blue}\verb+Nile+} 的帮助文档，可知是尼罗河在1871-1970年的在阿斯旺的年流量。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型 #13
在一个典型的员工数据集里，保存有员工的姓名和年龄等数据。数据框就是用来完成这个任务的。数据框也是一种特殊的列表，其中姓名这个分量保存了所有员工的姓名，年龄保存了所有员工的年龄，性别保存了所有员工的性别。测试下述程序创建了一个数据框，然后选出不正确的那个说法。
{\color{blue}\begin{verbatim}
> emp.names<-c('wang','chen','zhao')
> emp.ages<-c(36,37,40)
> emp.genders<-c('M','M','F')
> emp.list<-list(names=emp.names, ages=emp.ages, gender=emp.genders) 
> emp.df<-data.frame(emp.list)
> emp.df
\end{verbatim}
}

\begin{enumerate}
\item  命令 {\color{blue}\verb+emp.df[2]+} 将返回一个只保留所有员工的年龄的数据框。
\item  命令 {\color{blue}\verb+emp.df[2,]+} 将返回员工 chen 所在的数据记录。
\item  命令 {\color{blue}\verb+emp.df[,2]+} 将返回一个只保留所有员工的年龄的向量。
\item  命令 {\color{blue}\verb+emp.df[c(1,3)]+} 将返回一个只保留所有员工的性别的数据框。
%\item  数据框 {\color{blue}\verb+emp.df+} 的第三列是一个因子型的向量。
\end{enumerate}

{\color{red}答案解析：（d）
这个命令返回的是一个保留员工姓名和性别的数据框。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型 #14
因子可以简单地看作是一个附加了更多信息的向量。这额外的信息包括向量中不同的值的记录，称为水平。
测试下述程序，然后选出不正确的那个说法。%关于，哪个说法是不正确的？
{\color{blue}\begin{verbatim}
> x<-c(3,12,15,12,15,12)
> xf<-factor(x)
> xff<-factor(x,levels=c(3,12,15,21))
> xf
> xff
> class(xf)
> xf[3]
\end{verbatim}
}

\begin{enumerate}
\item  变量 {\color{blue}\verb+x+} 是一个数值型向量。
\item  变量 {\color{blue}\verb+xf+} 是一个因子型向量，有3个水平。
\item  变量 {\color{blue}\verb+xff+} 是一个因子型向量，有4个水平。
\item  测试程序的最后结果是一个有3个水平的因子型变量。
\end{enumerate}

{\color{red}答案解析：（d）
测试程序的最后结果是一个有4个水平的因子型变量。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型 #15
测试下述程序，然后判断关于 NA 和 NULL 的哪个说法是不正确的。
{\color{blue}\begin{verbatim}
> x <- c(1,2,3,NA,5)
> mean(x)
> mean(x,na.rm=T)
> y <- NULL
> for (k in 1:10) y <- c(y,k*k)
\end{verbatim}
}

\begin{enumerate}
\item  NA 表示一个存在但是未知的值。
\item  在数据有 NULL 作为分量时，返回的结果总是 NULL. 
\item  在数据有 NA 作为分量的时候，可用参数 na.rm=T 来跳过缺失值。
\item  NULL表示一个空值，经常用在循环的开始，从 NULL 开始可以依次添加分量。
\end{enumerate}

{\color{red}答案解析：（b）
在数据有 NULL 时，程序会自动跳过 NULL. 
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%\end{enumerate}
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%\begin{enumerate}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型1
从1-10随机选取3个数，不能重复选取，下述哪个命令可以实现？
\begin{enumerate}
\item  {\color{blue}\verb+ > choose(10,3) +}
\item  {\color{blue}\verb+ > sample(3, 1:10) +}
\item  {\color{blue}\verb+ > sample(1:10, 3, replace=T) +}
\item  {\color{blue}\verb+ > sample(1:10, 3) +}
\end{enumerate}

{\color{red}答案解析：(d). 选项 (a)是计算组合数。选项 (b)参数位置不对。选项 (c)这是有放回的抽样。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型2
按照下述概率分布，产生10个随机数。下述哪个命令可以实现？
\begin{center}
\begin{tabular}{|c|c|c|c|} \hline
$X$ & 1 & 2 & 3 \\ \hline
$p_k$ & 0.2 & 0.3 & 0.5 \\ \hline
\end{tabular}
\end{center}

\begin{enumerate}
\item  {\color{blue}\verb+ > sample(1:3, replace=T, prob=c(0.2,0.3,0.5)) +}
\item  {\color{blue}\verb+ > sample(1:3, 10, r=T, p=c(0.2,0.3,0.5)) +}
\item  {\color{blue}\verb+ > choose(1:3, replace=T, prob=c(0.2,0.3,0.5)) +}
\item  {\color{blue}\verb+ > choose(1:3, 10, r=T, p=c(0.2,0.3,0.5)) +}
\end{enumerate}

{\color{red}答案解析：(b).
选项 (a)的结果是3个数的全排列。选项 (c)和(d)的函数 {\color{blue}\verb+ choose +} 是用来计算组合数的。
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型3
运行下述两行程序。下述说法中，错误的是哪个？
{\color{blue}
\begin{verbatim}
> x<- prod(4:2)+sum(4:2)+choose(4,2)
> y<- 4*3*2+(4+3+2)+4*3/2/1
\end{verbatim}
}

\begin{enumerate}
\item  结果变量 {\color{blue}\verb+ x +} 的值是 39. 
\item  结果变量 {\color{blue}\verb+ y +} 的值是 39. 
\item  函数 {\color{blue}\verb+ prod +} 和 {\color{blue}\verb+ sum +} 分别计算一个向量的所有元素的连乘和连加。
\item  函数 {\color{blue}\verb+ choose(n,k) +} 计算从 $n$ 个数里选出 $k$ 个数的排列数。
\end{enumerate}

{\color{red}答案解析：(d).
选项 (d) 是不对的，这个函数 {\color{blue}\verb+ choose(n,k) +} 计算从 $n$ 个数里选出 $k$ 个数的组合数。差别就是组合数不需要有顺序，因此要除以 $k!$. 
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型4
设每次试验成功的概率是 $0.3$. 独立地重复这个试验10次。恰好有3次成功的概率是多少？ 

\begin{enumerate}
\item  0.2468
\item  0.2568
\item  0.2668
\item  0.2768
\end{enumerate}

{\color{red}答案解析：(c).
使用命令 {\color{blue}\verb+ > dbinom(3,10,0.3) +} 即得答案。
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型5
设每次试验成功的概率是 $0.3$. 独立地重复这个试验10次。至少有3次成功的概率是多少？ 

\begin{enumerate}
\item  0.6172
\item  0.6272
\item  0.6372
\item  0.6472
\end{enumerate}

{\color{red}答案解析：(a).
设 $X\sim b(n,p)$. 这个题目是要计算 $\mathbb{P}(X\ge 3)$. 
方法一是转化成累计概率密度函数，可得
$$\mathbb{P}(X\ge 3) = 1 - \mathbb{P}(X\le 2).$$
方法二是把所有符合的情况的概率加起来，也就是
$$\mathbb{P}(X\ge 3) = \sum\limits_{k=3}^{10} \mathbb{P}(X=k). $$
因此下述两个命令都可以：
{\color{blue}
\begin{verbatim}
> 1-pbinom(3,10,0.3) 
> sum(dbinom(3:10,10,0.3))
\end{verbatim}
}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型6
运行下述程序，选择不正确的那个说法。
{\color{blue}
\begin{verbatim}
> x<-seq(-3,3,0.2)
> y<-dnorm(x,mean=1,sd=1)
> plot(x,y)
\end{verbatim}
}

\begin{enumerate}
\item  变量 {\color{blue}\verb+ x +} 是区间 $[-3,3]$ 上间距为 0.2 的等差数组。
\item  变量 {\color{blue}\verb+ y +} 保存了一个正态分布在自变量取值为 {\color{blue}\verb+ x +} 的概率密度函数值。
\item  图像最后画出一条正态分布的曲线。
\item  这个正态分布的均值是1，方差也是1.
\end{enumerate}

{\color{red}答案解析：(c).
由于没有指定参数 {\color{blue}\verb+ type='l'+}, 图像是一个散点图，不是曲线。
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型7
设某个地区的人均收入服从正态分布，均值为7万元，标准差为2万元。假设收入最低的5\%人口为贫困，请问这样定义的贫困线是多少？
\begin{enumerate}
\item  1.7102万元
\item  2.7102万元
\item  3.7102万元
\item  4.7102万元
\end{enumerate}

{\color{red}答案解析：(c).
设随机变量 $X\sim N(7,2^2)$. 设这样定义的贫困线为 $c$, 则有 $\mathbb{P}(X\le c)=0.05$. 
于是 $c$ 是 $X$ 的下 0.05 分位数。使用下述命令即得答案。 
{\color{blue}
\begin{verbatim}
> qnorm(0.05,mean=7,sd=2)
\end{verbatim}
}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型8
设随机变量 $X\sim \chi^2(9)$, 即自由度为 9 的卡方分布。求概率 $\mathbb{P}(X>20)$. 
\begin{enumerate}
\item  0.01691
\item  0.01791
\item  0.01891
\item  0.01991
\end{enumerate}

{\color{red}答案解析：(b).
根据卡方分布的定义，这个随机变量 $X$ 是9个相互独立的标准正态分布的随机变量的平方和。
使用累计分布函数，转化成计算 $1-\mathbb{P}(X\le 20)$. 
{\color{blue}
\begin{verbatim}
> 1-pchisq(20,9)
\end{verbatim}
}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型9
设 $X$ 服从标准正态分布。求实数 $c$ 使得 $\mathbb{P}(|X|\ge c)=0.01$.

\begin{enumerate}
\item  2.4758
\item  2.5758
\item  2.6758
\item  2.7758
\end{enumerate}

{\color{red}答案解析：(b).
根据对称性，这个问题等价于求分位数 $c$ 使得 $\mathbb{P}(X\ge c)=0.005$. 为使用累计分布函数，将这个等式转化成
$\mathbb{P}(X\le c)=0.995$. 使用分位数函数，也就是累积分布函数的逆函数，即得。
{\color{blue}
\begin{verbatim}
> qnorm(0.995)
\end{verbatim}
}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型10
设某时刻某地铁线路上的乘客人数服从泊松分布，均值是200人。求乘客人数超过220的概率。
\begin{enumerate}
\item  0.05530
\item  0.06530
\item  0.07530
\item  0.08530
\end{enumerate}

{\color{red}答案解析：(c).
设 $X$ 是乘客人数。要计算概率 $\mathbb{P}(X>220)$. 为使用累计分布函数，转化成计算 $1-\mathbb{P}(X\le 220)$. 
{\color{blue}
\begin{verbatim}
> 1-ppois(220,200)
\end{verbatim}
}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%\end{enumerate}
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%
%\begin{enumerate}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型  第1题
查看1871-1970年的尼罗河在阿斯旺的年流量数据，这是一个时间序列数据，单位是亿立方米。
下述程序计算这100个数据的10分位数。找出年流量最大的十年里，年流量的范围。
{\color{blue}
\begin{verbatim}
> Nile
> ?Nile
> class(Nile)
> pvec <- seq(0,1,0.1)
> quantile(Nile, pvec)
\end{verbatim}
}

\begin{enumerate}
\item  在1160与1370之间。
\item  在1100与1370之间。
\item  在1060与1370之间。
\item  在1000与1370之间。
\end{enumerate}

{\color{red}答案解析：(a).
直接读出 90\%分位数，即得有十年的流量大于等于1160亿立方米。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型  第2题
载入课程教材的 {\color{blue}\verb+ISwR+} 数据框程序包，并研究 {\color{blue}\verb+juul+} 数据框。下述说法中，不正确的是哪个？
{\color{blue}
\begin{verbatim}
> library(ISwR)  #1
> head(juul) #2
> mydata<-juul[juul$tanner==1,]  #3
> nrow(mydata)  #4
> head(mydata)  #5
> mydata<-mydata[,c('age','sex','igf1')]  #6
> mydata<-mydata[complete.cases(mydata),]  #7
> head(mydata)  #8
\end{verbatim}
}

\begin{enumerate}
\item  第三行命令找出了 {\color{blue}\verb+tanner+} 变量等于1的所有观测。
\item  第四行命令计算了这个数据框有多少个观测。
\item  第六行命令删除了这个数据框里除了这三个变量之外的其它变量。
\item  第七行命令删除了这个数据框里存在缺失值的那些观测。
\end{enumerate}

{\color{red}答案解析：(a).
第三行命令的结果是tanner 变量等于1或者是缺失值的所有观测。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型  第3题
继续研究 {\color{blue}\verb+juul+} 数据框。下述说法中，不正确的是哪个？
{\color{blue}
\begin{verbatim}
> mydata <- juul[juul$tanner==1,]  #1
> mydata <- mydata[,c('age','sex','igf1')]  #2
> mydata <- mydata[complete.cases(mydata),]  #3
> summary(mydata)  #4
> mydata$sex <- factor(mydata$sex, labels=c('male','female'))  #5
> summary(mydata)  #6
> hist(mydata$igf1)  #7
\end{verbatim}
}

\begin{enumerate}
\item  第四行命令显示 {\color{blue}\verb+sex+} 变量是个数值型。
\item  第五行命令将 {\color{blue}\verb+sex+} 变量转换成因子型。
\item  第六行命令显示这个数据框里两种性别的人分别有多少。
\item  第七行命令画出了 {\color{blue}\verb+igf1+} 变量的直方图，结果发现取值在100-150之间的观测为最多。
\end{enumerate}

{\color{red}答案解析：(d).
默认按照间距50绘制直方图，结果发现取值在区间150-200的观测为最多。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型  第4题
继续研究上一题的 {\color{blue}\verb+mydata+} 数据框。下述说法中，不正确的是哪个？
{\color{blue}
\begin{verbatim}
> x <- mydata$igf1   #1
> n <- length(x)   #2
> par(mfrow=c(2,1))   #3
> plot(sort(x),(1:n)/n,type='s')   #4
> title('empirical cumulative distribution function')   #5
> x1 <- seq(min(x),max(x),(max(x)-min(x))/length(x))   #6
> y1 <- pnorm(x1,mean=mean(x),sd=sd(x))   #7
> plot(x1,y1,type='s')   #8
> title('theoretical cumulative distribution function')   #9
\end{verbatim}
}

\begin{enumerate}
\item  第四行中的 {\color{blue}\verb+sort+} 函数是将数据从小到大排序。
\item  第四行画出了数据的经验分布函数。
\item  第六行设置一个与变量 {\color{blue}\verb+x+} 有相同取值范围和分量个数的等差数列。
\item  第八行画出了正态分布的分布函数。
\end{enumerate}

{\color{red}答案解析：(c).
这两个变量的取值范围相同，但是变量个数不一样。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型  第5题
为研究上一题的 {\color{blue}\verb+mydata+} 数据框中的 {\color{blue}\verb+igf1+} 数据的正态性，我们测试下述命令。
下述说法中，不正确的是哪个？
{\color{blue}
\begin{verbatim}
> x <- mydata$igf1   #1
> qqnorm(x)   #2
> x2<-rnorm(311)   #3
> qqnorm(x2)   #4
\end{verbatim}
}

\begin{enumerate}
\item  结果表明数据 {\color{blue}\verb+x2+} 更符合正态分布。
\item  在这两个QQ图里，理论分位数是放在横坐标上的。
%\item QQ图上的点投影到纵坐标上，是等间距的。
\item QQ图上的点投影到横坐标上，是等间距的。
\item  在这两个QQ图里，这些点的纵坐标就是所给的数据。
%\item  这个QQ图的工作原理是，如果两组数据都来自正态分布，那么它们的分位数的疏密程度是一样的。
\end{enumerate}

{\color{red}答案解析：(c).
QQ图上的点投影到横坐标上，是所要检验的分布的等概率的分位数。除非是均匀分布，否则这些分位数不会是等间距的。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型  第6题
设总体 $X$ 的一个样本是 $5, 4, 5, 4, 5, 5, 1, 2, 1, 1$. 设 $F_e(x)$ 是经验分布函数，则 $F_e(2)$ 的值是多少？

\begin{enumerate}
\item  $0.3$.
\item  $0.4$.  
\item  $0.5$.
\item  $0.6$.  
\end{enumerate}

{\color{red}答案解析：(b).
按照经验分布函数的定义，$F_e(x)$ 的值是样本中取值小于或等于 $x$ 的频率。题目的样本中，样本容量 $n=10$, 小于或等于 2 的个体有 4 个，所以 $F_e(2)=4/10$. 
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型  第7题
载入课程教材的 {\color{blue}\verb+ISwR+} 数据框程序包，并研究 {\color{blue}\verb+juul+} 数据框。下述说法中，不正确的是哪个？
{\color{blue}
\begin{verbatim}
> library(ISwR)   #1
> head(mydata)   #2
> mydata<-subset(juul,tanner==1 | tanner==2)   #3
> mydata<-mydata[,c(1,3,4,5)]   #4
> summary(mydata)   #5
> mydata<-mydata[complete.cases(mydata),]   #6
> mydata$tanner<-factor(mydata$tanner,labels=c('i','ii'))   #7
> mydata$sex<-factor(mydata$sex,labels=c('m','f'))   #8
> summary(mydata)   #9
\end{verbatim}
}

\begin{enumerate}
\item  第三行命令选取了变量 {\color{blue}\verb+tanner+} 取值为 1 或 2 的所有记录。
\item  第四行命令选取了该数据框的第 1,3,4,5 个变量的所有记录。
\item  第六行命令选取了该数据框的有完整观测的所有记录。
\item  最后运行结果显示 {\color{blue}\verb+tanner+} 为一期和二期的人数分别为 310 人和 71 人。
\end{enumerate}

{\color{red}答案解析：(d).
最后数据框 {\color{blue}\verb+mydata+} 中 {\color{blue}\verb+tanner+} 为一期和二期的人数分别为 311 人和 70 人。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型  第8题
接着上一题的数据框 {\color{blue}\verb+mydata+}, 这是一个分类数据。
%为计算男孩的平均生长因子的值，下述哪个选项无法实现？
运行下述命令来练习 {\color{blue}\verb+tapply+} 函数和 {\color{blue}\verb+aggregate+} 函数。下述说法中，不正确的是哪个？
{\color{blue}
\begin{verbatim}
> summary(mydata)   #1
> attach(mydata)   #2
> tapply(igf1,sex,mean)   #3
> tapply(igf1,sex,sd)   #4
> tapply(igf1,tanner,mean)   #5
> tapply(igf1,tanner,sd)   #6
> aggregate(mydata[c('age','igf1')],list(sex=sex),mean)   #7
> aggregate(mydata[c('age','igf1')],list(sex=sex,tanner=tanner),mean)   #8
\end{verbatim}
}

\begin{enumerate}
\item   函数 {\color{blue}\verb+tapply+} 的第一个参数是目标变量，第二个参数是分类变量，第三个参数是准备分组进行的计算。
\item  结果显示，二期孩子们的生长因子的平均值是 352.67.
\item  函数 {\color{blue}\verb+aggregate+} 可以同时对若干个目标变量和若干个分组准则进行分组计算。
\item  结果显示，二期男孩子们的生长因子的平均值是 365.00.
\end{enumerate}

{\color{red}答案解析：(d).
结果显示，二期男孩子们的生长因子的平均值是 342.29.
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型  第9题
接着上一题的数据框 {\color{blue}\verb+mydata+}, 我们想用直方图来表示分类数据。
运行下述命令。下述说法中，不正确的是哪个？
{\color{blue}
\begin{verbatim}
> attach(mydata)   #1
> head(mydata)   #2
> igf1.boy <- igf1[sex=='m']   #3
> igf1.girl <- igf1[sex=='f']   #4
> par(mfrow=c(2,1))   #5
> hist(igf1.boy, breaks=10)   #6
> hist(igf1.girl, breaks=10, freq=F)   #7
> hist(igf1, breaks=10, labels=T, ylim=c(0,120))   #8
\end{verbatim}
}

\begin{enumerate}
\item  第三行命令选取了男孩组的生长因子数据，并保存为变量 {\color{blue}\verb+igf1.boy+}. 
\item  第五行命令是为接下来的两个画图命令做准备，将画出上下两个子图。
\item  第七行命令画出了女孩组的生长因子数据的直方图，并且纵坐标是频率密度。
\item  第八行命令画出的直方图可以看到，最多的一组有 76 人。
\end{enumerate}

{\color{red}答案解析：(d).
最多的一组有 84 人。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\item %知识点：数据类型  第10题
将下述表格数据保存为一个矩阵。运行下述命令。下述说法中，不正确的是哪个？
\begin{table}[ht!]
\centering
\caption{婚姻状况与喝咖啡的人数}\vspace{0.2cm}
\begin{tabular}{|c|c|c|c|c|} \hline
 & 不喝 & 1杯 & 2杯 & 3杯或以上 \\  \hline
已婚 & 652 & 1537 & 598 & 242 \\  \hline
离异 &   36 &     46 & 38   &   21 \\  \hline
单身 & 218 &   327 & 106 &  67 \\  \hline  
\end{tabular}
\end{table}

{\color{blue}
\begin{verbatim}
> x1<-c(652,1537,598,242)   #1
> x2<-c(36,46,38,21)   #2
> x3<-c(218,327,106,67)   #3
> caf.mar<-rbind(x1,x2,x3)   #4
> caf.mar   #5
> colnames(caf.mar)<-c('none','1-cup','2-cup','3-cup')   #6
> rownames(caf.mar)<-c('married','divorced','single')   #7
> caf.mar   #8
> names(dimnames(caf.mar))<-c('mar','caf')   #9
> cm.tab<-as.table(caf.mar)   #10
> cm.df<-as.data.frame(cm.tab)   #11
> cm.df   #12
> summary(cm.df)   #13
\end{verbatim}
}

\begin{enumerate}
\item  第四行命令是将三个向量按行排成一个矩阵。
\item  第六、七行命令分别给矩阵的每一列和每一行命名。
\item  第十行命令得到一个表格。表格跟矩阵是一样的。
\item  第十一行命令得到一个数据框，其中有两个变量是因子型。
\end{enumerate}

{\color{red}答案解析：(c).
表格跟矩阵是不一样的。
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\end{enumerate}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\end{document}







